package com.software.car.common.utils;

import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil;

/**
 * @Description 雪花算法生成工具
 * @Author 魔法はまだ解けない
 * @Date 2021/1/17
 */
public class SnowflakeIdGenerator {

    /**
     * Worker ID （工作机 ID）
     */
    private long workerId = 1L;

    /**
     * Datacenter ID （数据中心 ID）
     */
    private long datacenterId = 1L;

    private static Snowflake snowflake;

    private SnowflakeIdGenerator() {
        snowflake = IdUtil.getSnowflake(workerId, datacenterId);
    }

    private static SnowflakeIdGenerator snowflakeIdGenerator = new SnowflakeIdGenerator();

    /**
     * 生成雪花id
     * @return
     */
    public static String getId() {
        return snowflake.nextIdStr();
    }
}
